<template>
<div class="home-page">
    <section class="py-5 text-center container">
      <div class="row py-lg-5">
        <div class="col-lg-6 col-md-8 mx-auto">
          <img src="../assets/callout.svg" alt="callout" class="w-50"/>
          <h2 class="font-weight-light">随心写作，自由表达</h2>
          <p>
            <router-link to="/create" class="btn btn-primary my-2">开始写文章</router-link>
          </p>
        </div>
      </div>
    </section>
    <!-- <Upload
      :action="'/api/upload'"
      :beforeUpload="beforeUpload"
      @file-uploaded="onFileUploaded"
    >
    <template #uploaded="dataProps">
      <img :src="dataProps.uploadedData.data.url" width="500" alt="">
    </template>
    </Upload> -->
    <h4 class="font-weight-bold text-center">发现精彩</h4>
    <ColumnList :list="list"></ColumnList>
    <!-- <button
      class="btn btn-outline-primary mt-2 mb-5 mx-auto btn-block w-25"
      @click="loadMorePage" v-if="!isLastPage"
    >
      加载更多
    </button> -->
  </div>
</template>

<script lang="ts">
import { computed, defineComponent, onMounted } from "vue";
import { useStore } from 'vuex'
import ColumnList from "../components/ColumnList.vue";
import { GlobalDataProps, ImageProps, ResponseType } from '../store'
import createMessage from '../components/createMessage'
export default defineComponent({
  name: "App",
  components: {
    ColumnList,
  },
  setup() {
    onMounted(() => {
      // eslint-disable-next-line @typescript-eslint/no-use-before-define
      store.dispatch('fetchColumns')
    })
    const store = useStore<GlobalDataProps>()
    const list = computed(() => store.state.columns)
    const beforeUpload = (file: File) => {
      const isJPG = file.type === 'image/jpeg'
      if (!isJPG) {
        createMessage('图片仅支持 jpg 格式', 'error')
        return isJPG
      }
    }
    const onFileUploaded = (rawData: ResponseType<ImageProps>) => {
      createMessage(`上传图片ID ${rawData.data}`, 'success')
    }
    return {
      list,
      beforeUpload,
      onFileUploaded
    };
  },
});
</script>